import os

class HttpStatus:
    OK = 200
    CREATED = 201
    BAD_REQUEST = 400
    UNAUTHORIZED = 401
    FORBIDDEN = 403
    NOT_FOUND = 404
    INTERNAL_SERVER_ERROR = 500

class CrimeStatus:
    OPEN = "open"
    # Add other crime statuses if they exist

class Role:
    ADMIN = "admin"
    USER = "user"

class DbConfig:
    DATABASE_URL = os.getenv("DATABASE_URL", "sqlite+pysqlite:///app.db") # Default to app.db if not set

class DefaultValues:
    SKIP = os.getenv("DEFAULT_SKIP", "0")
    LIMIT = os.getenv("DEFAULT_LIMIT", "100")

class SecurityConfig:
    PASSWORD_HASHING_ENABLED = os.getenv("PASSWORD_HASHING_ENABLED", "True").lower() == "true"
    USERNAME_ENCRYPTION_ENABLED = os.getenv("USERNAME_ENCRYPTION_ENABLED", "False").lower() == "true"

# JWT related constants (moved from jwt_util.py)
class JwtConfig:
    SECRET_KEY = os.getenv("JWT_SECRET_KEY", "your-dev-secret-key") # IMPORTANT: Change for production
    ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("JWT_ACCESS_TOKEN_EXPIRE_MINUTES", 30))
    REFRESH_SECRET_KEY = os.getenv("JWT_REFRESH_SECRET_KEY")
    REFRESH_TOKEN_EXPIRE_DAYS = int(os.getenv("JWT_REFRESH_TOKEN_EXPIRE_DAYS", 7))